package com.topten.basicas.comum;

import java.util.Calendar;

import javax.persistence.Column;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@MappedSuperclass
public abstract class ObjetoGeral {

	@Id
	@GeneratedValue
	private Integer codigo;
	@Temporal(TemporalType.TIMESTAMP)
	@Column(nullable = true, name = "dt_ultima_atualizacao")
	private Calendar dataUltimaAtualizacao;
	@Enumerated(EnumType.STRING)
	private Situacao situacao;

	@PrePersist
	@PreUpdate
	public void atualizarData() {
		dataUltimaAtualizacao = Calendar.getInstance();

	}
	
	public void atualizaSituacao(){
		this.setSituacao(Situacao.ATIVO);
		
	}

	public Integer getCodigo() {
		return codigo;
	}

	public void setCodigo(Integer codigo) {
		this.codigo = codigo;
	}

	public Calendar getDataUltimaAtualizacao() {
		return dataUltimaAtualizacao;
	}

	public void setDataUltimaAtualizacao(Calendar dataUltimaAtualizacao) {
		this.dataUltimaAtualizacao = dataUltimaAtualizacao;
	}

	public Situacao getSituacao() {
		return situacao;
	}

	public void setSituacao(Situacao situacao) {
		this.situacao = situacao;
	}

}
